Apparatus and method for linking objects created in a rapid application development environment

ABSTRACT

A computer readable storage medium includes executable instructions to invoke a rapid application development graphical user interface to define fields associated with a set of objects. The creation of new objects derived from the set of objects is facilitated using the rapid application development graphical user interface to select existing fields of the set of objects and define new object fields. Tabs are associated with the new objects. A set of tabs is selected to create a new application.

BRIEF DESCRIPTION OF THE INVENTION

This invention relates generally to the creation of applicationsoftware. More particularly, this invention relates to techniques forlinking objects created in a rapid application development environmentto produce new applications.

BACKGROUND OF THE INVENTION

Application software is a subclass of computer software that utilizesexecutable instructions to accomplish a task for an end user. Incontrast, system software integrates a computer's capabilities, buttypically does not directly apply the capabilities in the performance ofa task for an end user. Typical examples of software applications areword processors, spreadsheets, media players and other software toperform more narrowly tailored tasks, such as a bug trackingapplication, a contact management application, a recruiting managementapplication, a channel management application, a quote and proposalapplication, a project management application, and the like.

Rapid Application Development (RAD) is a software methodology to reducethe need for individuals to prepare complex code to implement anapplication. Typically, RAD involves iterative development, theconstruction of prototypes, and the use of Computer-Aided SoftwareEngineering (CASE) tools. Some RAD software expresses rules in tablesrather than sequential code, allowing non-programmers to quickly developprograms.

RAD techniques have been successfully used to allow users to customizean application. For example, the Nsite Quote and Channel Managementproduct (Version 5.0), formerly sold by Nsite Software. Inc., includes14 application templates to automate business applications, such assales support, performance management contract review, and the like.Each template can be customized through a drag and drop interfacewithout any coding to produce customized or new applications. Eachcustomized or new application relies upon a set of objects associatedwith the original template. There is no sharing of objects betweenapplications.

In view of the foregoing, it would be desirable to provide improvedtechniques for naming, connecting and deploying objects in a rapidapplication development environment. In particular, it would bedesirable to utilize a simple graphical user interface feature (e.g., atab) to process and deploy objects across applications and betweenmultiple applications.

SUMMARY OF THE INVENTION

The invention includes a computer readable storage medium withexecutable instructions to invoke a rapid application developmentgraphical user interface to define fields associated with a set ofobjects. The creation of new objects derived from the set of objects isfacilitated using the rapid application development graphical userinterface to select existing fields of the set of objects and define newobject fields. Tabs are associated with the new objects. A set of tabsis selected to create a new application.

BRIEF DESCRIPTION OF THE FIGURES

The invention is more fully appreciated in connection with the followingdetailed description taken in conjunction with the accompanyingdrawings, in which:

FIG. 1 illustrates a computer configured in accordance with anembodiment of the invention.

FIG. 2 illustrates processing operations associated with an embodimentof the invention.

FIG. 3 illustrates objects processed in accordance with an embodiment ofthe invention.

FIG. 4 illustrates the development of various applications with theobjects of FIG. 3 and objects derived from the objects in FIG. 3.

FIG. 5 illustrates the selection of an application and related tab in aGUI associated with an embodiment of the invention.

FIG. 6 illustrates a GUI to display information about an object of FIG.

FIGS. 7, 8, 9A and 9B illustrate GUIs to add object properties inaccordance with an embodiment of the invention.

FIG. 10 illustrates a GUI to associate an object with a tab inaccordance with an embodiment of the invention.

FIG. 11 illustrates a GUI that may be used to select tabs to create anapplication in accordance with an embodiment of the invention.

FIG. 12 illustrates a GUI to support role based access in accordancewith an embodiment of the invention.

FIG. 13 illustrates a GUI to support the management of objects utilizedin accordance with an embodiment of the invention.

FIG. 14 illustrates the expression of rules in a decision table inaccordance with an embodiment of the invention.

Like reference numerals refer to corresponding parts throughout theseveral views of the drawings.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 illustrates a computer 100 configured in accordance with anembodiment of the invention. The computer 100 includes standardcomponents, such as a central processing unit 110 connected to a set ofinput/output devices 112 via a bus 114. The input/output devices 112 mayinclude a keyboard, mouse, display, printer, and the like. A networkinterface circuit 116 is also connected to the bus 114 to supportconnectivity to a network (not shown). Thus, the computer 100 mayoperate in a networked environment, such as a client-server environmentas either a client machine or a server machine.

A memory 120 is also connected to the bus 114. The memory 120 storesexecutable instructions to implement operations of the invention. In oneembodiment, the executable instructions are in the form of a RapidApplication Development (RAD) platform 122. The RAD platform 122 mayinclude a set of existing objects 124, for example associated with a setof application templates. An object manager 126 facilitates access tothe existing objects 124 and the creation of new objects 128. Asdiscussed below, the new objects are associated with tabs. The objectmanager 126 allows various tabs to be combined to create applications130. Notably the existing objects 124 and new objects 128 may becombined in various ways to produce a variety of applications. In otherwords, there is not a one-to-one correspondence between objects and anapplication. Rather, individual objects may be used to support variousapplications.

FIG. 2 illustrates processing operations associated with an embodimentof the invention. Initially, objects are accessed 200. For example, theobject manger 126 may access existing objects 124 or create new objects.New objects are then derived 202. For example, as discussed below, newobject fields may be defined to create new objects 128. In addition, newobjects may be created by selecting a subset of the fields associatedwith an existing object.

Next, an object is associated with a tab 204. The tab operates as asimple graphical metaphor to represent an object. One or more tabs arethen associated with an application 206. As demonstrated below, varioustabs may be selected to produce an application. The application may berevealed to a user as a set of tabs. Finally, the application isdeployed 208. Once an application is constructed in the foregoingmanner, conventional techniques may be used to deploy the application.

FIG. 3 illustrates a set of objects that may be used to construct arecruiting management application. In this example, the recruitingmanagement application is constructed from a job requisition object 300,a candidates object 302, an interviews object 304, and a job offerobject 306. The job requisition object 300 includes a requisitioninformation field 310, a function/qualification field 312 and acomments/attachments field 314. Each field may have subfields. Forexample, the requisition information field 310 includes a job IDsubfield 316, a title/position subfield 318, a location subfield 320,and the like. As shown in FIG. 3, fields and subfields from variousobjects have counterparts in other objects.

Objects associated with the invention may be in the form of “enterpriseobjects”. Enterprise objects define all the interfaces for interactionwith an object (e.g., detail, edit, view, quick create, and searchinterfaces). Enterprise objects may also define the data modeling anddatabase interaction from development interfaces automatically. Thus.one does not have to model the object first and then create theinterface. Enterprise objects also include fields that contain data.Further, as discussed below, enterprise objects may be used in manyapplications. From within an interface, links to other enterpriseobjects or process applications may be added. These links may be statichyperlinks or can launch and pre-populate a record from anotherenterprise object process or application. The object manager 126supports the linking of enterprise objects that belong to differentapplications. Role based access controls these links.

FIG. 4 includes a simplified depiction of the objects 300-306 of FIG. 3.In this example, the objects 300-306 are associated with a firstapplication 400. For example, objects 300-306 may be a set ofpre-existing objects associated with an application template. The objectmanger 126 may be used to access the objects 300-306 and then modifythem to produce a set of new objects 300_2 through 306_2. For example, auser may define a new object by specifying a subset of pre-existingfields and/or defining new object fields. The new objects 300_2 through306_2 may then be selected to form a second application 402.Subsequently, objects may be selected from the original objects 300-306and the new objects 300_2 through 306_2 to create a new application(e.g., a third application) 404. Observe then that the inventionsupports the creation of new objects and the utilization of thoseobjects in a variety of applications.

FIG. 5 illustrates a Graphical User Interface (GUI) 500 associated withan embodiment of the invention. The GUI 500 may be supported by theobject manager 126. A pull-down window 502 allows a user to select anapplication. In this example, the previously discussed recruitingmanagement application is selected. The recruiting managementapplication has an associated home page 503, identified by tab 504. Thehome page 503 also has a set of tabs 506-514. Tab 506 corresponds toobject 300 of FIG. 3, tab 508 corresponds to object 302, tab 510corresponds to object 304, and tab 512 corresponds to object 306. Tab514 invokes a search operation. As shown with tab 516, additionalobjects may be associated with an application, but not shown on the homepage 503. Utilization of the search tab 514 may produce a searchinterface 518, which renders a list of searched objects 520 associatedwith an application. Selecting a tab in FIG. 5 moves a user from thehome page 503 to a page providing details on the selected object. Forexample, selection of the job requisitions tab 506 results in the page600 of FIG. 6.

FIG. 6 illustrates the fields 310, 312, and 314 associated with object300 of FIG. 3. An expansion button 602 may be used to provideinformation on subfields, such as job ID 316, title/position 318 andlocation 320. Blocks 316, 318 and 320 form data input controls. The datainput controls may be in any number of configurations, including textentry boxes, check boxes, buttons, linking controls, drop down menus,radio buttons, and the like. As discussed below, individual data inputcontrols may have associated attribute properties, such as a hideattribute, a required attribute, an auto-load attribute, a data lookupattribute, a read-only attribute, a data format attribute, a defaultvalues attribute, a formulas attribute, a data visibility attribute, andan edit privilege attribute. When modifying an existing object,attribute properties may be automatically assigned to the new object.Individual attributes may then be altered by a user.

A user may alter the characteristics of the job requisition object bytyping information into a subfield (e.g., 318) or by using a pull-downmenu (e.g., 604) to specify further subfields associated with an object.Thus, in this example, existing objects may be modified to create newobjects. The advantage here is that existing objects are leveraged toeasily create new objects. A GUI such as that shown in FIG. 6 may alsobe used to initially express the definition of an object. In otherwords, a GUI of the type shown in FIG. 6 may be used to define newobjects, not simply modify existing objects.

FIG. 7 illustrates a GUI 700 that may be used to add areas to an object.Various areas and tables may be defined using buttons 702 and 704.Similarly, as shown in FIG. 8, area details may be expressed, forexample by adding a row, deleting a row, deleting an area and moving anarea. As shown in FIG. 9A, an area label may be expressed in block 900and a visibility attribute for the area may be expressed with block 902.An area holds one or more controls. The controls have attributes orproperties and these attributes affect the behavior and depiction of thecontrol within the associated object. FIG. 9B illustrates a GUI 910 tospecify properties or attributes for a control specified in block 912.In this example, attributes that may be defined include, required, readonly, keyword field, hidden, data type, etc.

Once an object is defined (e.g., by modifying an existing object orcreating a new object), it may be associated with a tab. FIG. 10illustrates a GUI 1000 to implement this operation. GUI 1000 may be usedto edit a tab. A similar GUI can be called for a new tab by using button1001. Whether editing or creating a tab, a name for the tab may beentered in block 1002. Attributes may also be assigned to the objectusing the tab GUI 1000. For example, the state of the correspondingobject may be set with button 1004. The state may be an active state, asshown in FIG. 10, or a test state. A visibility state may be expressedwith block 1006. The visibility state may be used to support role basedaccess, as further discussed below. The type of object may be defined inblock 1008. The version of the object may be expressed with block 1010.An image may be associated with the object using block 1012. Inaddition, a custom Uniform Resource Location (URL) for the object may bedefined in block 1014.

At this point, one or more tabs may be combined to form an application.GUI 1100 of FIG. 11 may be used to support this operation. The GUI 1100may be used to edit an existing application; a similar GUI may be usedto create a new application using button 1102. An application creationGUI, such as GUI 1100, may include a block 1104 to name the application.A description block 1106 may be used to provide a text description ofthe application. Button 1108 may be used to designate differentapplication states, such as an active (i.e., deployed) state or a teststate. Role based security may be specified with a visibility block1110. An application is formed by selecting tabs from an available tabsblock 1112. The selected tabs are then displayed in block 1114. Observethat the selected tabs shown in block 1114 correspond to the objectsshown in FIG. 3.

As previously mentioned, the invention supports role based security.FIG. 12 provides an example GUI 1200 to implement role based security.The GUI 1200 includes a column to list a set of objects or tabs.Subsequent columns may be used to specify controls to ascribe attributesto each object. In this example, attributes include access 1204,creation 1206, import 1210, view 1212, edit 1214, and delete 1216.Individual entries in the various columns may have associated pull-downwindows, such as window 1218, which allows one to specify variousrights, in this case allow, deny or not applicable (N/A). A name block1220 may be used to express rights associated with an individual or aclass of individuals (e.g., recruiting management). Role based securitycan be associated with individual fields and controls within theobjects. In one embodiment, the association is created using anattribute property that is associated with the control.

FIG. 13 illustrates a GUI 1300 that may be used for version control ofobjects utilized in accordance with an embodiment of the invention. TheGUI 1300 includes a column 1302 that lists objects. Various traitsassociated with the object may be controlled from the GUI 1300. Forexample, the mode of the object (e.g., a test mode or an active mode)may be specified in column 1304. The version of the object may bespecified in column 1306. An object with a first version number may beused in a first application, while a second version of the object isused in a second application. In one embodiment, the object manager 126includes executable code to create a set of versioned objects, whereeach versioned object has a common set of base fields. For example, aninitial object may have fields A, B, C, and D, while an object derivedfrom the initial object utilizes original fields A and D and new fieldsE and F. The derived object will be handled as an object with fields A,B, C, D, E, and F so that there is backward compatibility with theinitial object (i.e., a common set of base fields: A, B, C, D), but onlythe fields A, D, E and F are visible to the user. Finally, FIG. 13illustrates that column 1308 may be used to express whether the objectforms a part of a workflow.

FIG. 14 illustrates an additional feature associated with an embodimentof the invention. The GUI 1400 supports the expression of rules for anobject using a decision table. The GUI 1400 provides a table 1402 inwhich different rows express a different product discount. For example,row 1404 applies a product discount of 1 for a total transaction amountof 100 or more, while row 1406 applies a product discount of 10 for atotal transaction amount of 10,000 or more. Thus, various rules may beexpressed in a tabular form without writing executable instructions.Various commercially available products may then be used to transformthe table based rules to a set of executable instructions to implementthe logic of the table. The rule generator table of FIG. 14 thereforesupports the rapid application development environment associated withthe invention. In one embodiment, control tables provide rules todisambiguate the order in which decision tables are applied.

An embodiment of the present invention relates to a computer storageproduct with a computer-readable medium having computer code thereon forperforming various computer-implemented operations. The media andcomputer code may be those specially designed and constructed for thepurposes of the present invention, or they may be of the kind well knownand available to those having skill in the computer software arts.Examples of computer-readable media include, but are not limited to:magnetic media such as hard disks, floppy disks, and magnetic tape;optical media such as CD-ROMs, DVDs and holographic devices;magneto-optical media; and hardware devices that are speciallyconfigured to store and execute program code, such asapplication-specific integrated circuits (“ASICs”), programmable logicdevices (“PLDs”) and ROM and RAM devices. Examples of computer codeinclude machine code, such as produced by a compiler, and filescontaining higher-level code that are executed by a computer using aninterpreter. For example, an embodiment of the invention may beimplemented using Java, C++, or other object-oriented programminglanguage and development tools. Another embodiment of the invention maybe implemented in hardwired circuitry in place of, or in combinationwith, machine-executable software instructions.

The foregoing description, for purposes of explanation, used specificnomenclature to provide a thorough understanding of the invention.However, it will be apparent to one skilled in the art that specificdetails are not required in order to practice the invention. Thus, theforegoing descriptions of specific embodiments of the invention arepresented for purposes of illustration and description. They are notintended to be exhaustive or to limit the invention to the precise formsdisclosed; obviously, many modifications and variations are possible inview of the above teachings. The embodiments were chosen and describedin order to best explain the principles of the invention and itspractical applications, they thereby enable others skilled in the art tobest utilize the invention and various embodiments with variousmodifications as are suited to the particular use contemplated. It isintended that the following claims and their equivalents define thescope of the invention.

1. A computer readable storage medium, comprising executableinstructions to: invoke a rapid application development graphical userinterface to define fields associated with a set of objects; facilitatethe creation of new objects derived from the set of objects using therapid application development graphical user interface to selectexisting fields of the set of objects and define new object fields;associate tabs with the new objects; and select a set of tabs to createa new application.
 2. The computer readable storage medium of claim 1further comprising executable instructions to associate selected objectsof the set of objects and the new objects with an additionalapplication.
 3. The computer readable storage medium of claim 1 whereinthe rapid application development graphical user interface is a browseraccessed home page displaying tabs.
 4. The computer readable storagemedium of claim 1 wherein the rapid application development graphicaluser interface includes data input controls.
 5. The computer readablestorage medium of claim 4 wherein the data input controls are selectedfrom text entry boxes, check boxes, buttons, linking controls, drop downmenus, and radio buttons.
 6. The computer readable storage medium ofclaim 5 wherein the data input controls have attribute properties. 7.The computer readable storage medium of claim 6 wherein the attributeproperties comprise at least three attribute properties selected from ahide attribute., a required attribute, an auto-load attribute, a datalookup attribute, a read-only attribute, a data format attribute, adefault values attribute, a formulas attribute, a data visibilitysecurity attribute, and an edit privilege security attribute.
 8. Thecomputer readable storage medium of claim 6 wherein the attributeproperties facilitate the depiction of fields within generated graphicaluser interfaces.
 9. The computer readable storage medium of claim 6wherein the attribute properties control role based access.
 10. Thecomputer readable storage medium of claim 1 further comprisingexecutable instructions to associate an object with a version number.11. The computer readable storage medium of claim 10 further comprisingexecutable instructions to create a set of versioned objects, whereineach versioned object has a common set of base fields.
 12. The computerreadable storage medium of claim 10 further comprising executableinstructions to associate a designated object with one version numberwith a first application and the designated object with a second versionnumber with a different application.
 13. The computer readable storagemedium of claim 1 further comprising executable instructions toassociate an object with a state selected from a test state and anactive state.
 14. The computer readable storage medium of claim 1further comprising executable instructions to specify rules associatedwith an object.
 15. The computer readable storage medium of claim 14wherein the rules are expressed within decision tables.
 16. A computerreadable storage medium, comprising executable instructions to: invoke arapid application development graphical user interface to define fieldsassociated with a set of objects; facilitate the creation of new objectsthat define fields using the rapid application development graphicaluser interface to define a set of fields based on a provided set of datainput controls; associate tabs with the new objects; and select a set oftabs to create a new application.
 17. The computer readable storagemedium of claim 16 further comprising executable instructions toassociate selected objects of the set of objects and the new objectswith an additional application.
 18. The computer readable storage mediumof claim 16 wherein the rapid application development graphical userinterface is a browser accessed home page displaying tabs.
 19. Thecomputer readable storage medium of claim 16 wherein the data inputcontrols have attribute properties.
 20. The computer readable storagemedium of claim 19 wherein the attribute properties control role basedaccess.